﻿#宏定义 链表队列成员指针 链表队列成员*

结构体 链表队列成员
	函数 构造()
		起始地址 = 空
		下一个地址 = 空
		消息内容 = A""
	//直接标记起始地址,方便快速寻址
	链表队列成员指针*起始地址
	//上一个地址为空代表为头
	链表队列成员*上一个地址
	//下一个地址为空代表为尾
	链表队列成员*下一个地址
	//直接标记结束地址,方便快速插入
	链表队列成员指针*结束地址
	单文本型 消息内容

类 链表队列
	保护
	临界区结构 许可证
	链表队列成员*缓存队列
	公开
	函数 构造()
		许可证 = 线程_创建进入许可证 ()
		缓存队列 = 空
	函数 析构()
		线程_删除许可证(许可证)
	函数 加入消息(单文本型 消息内容)
		线程_进入许可区(许可证)
		链表队列成员*新消息 = new 链表队列成员
		新消息->消息内容 = 消息内容
		如果 缓存队列 == NULL
			//新队列
			缓存队列 = 新消息
			缓存队列->起始地址 = (链表队列成员指针*)&新消息
			缓存队列->上一个地址 = 空
			缓存队列->下一个地址 = 空
			缓存队列->结束地址 = (链表队列成员指针*)&新消息
		否则 
			//插入数据
			链表队列成员*尾成员 = 缓存队列->结束地址
			尾成员->下一个地址 = 新消息
			尾成员->结束地址 = (链表队列成员指针*)&新消息
			新消息->上一个地址 = 尾成员
			新消息->下一个地址 = 空
			新消息->结束地址 = (链表队列成员指针*)&新消息
		线程_退出许可区(许可证)

		
